<?php
/**
* 名称：Cookie操作类。
* 描述：统一封装"cookie概念领域"，创建方便、快捷、安全的操作方法。
*/
class Cookie{
    /**
    * 描述：设置cookie值。
    * @param  string  $name     必选 设置cookie的名称。
    * @param  mix     $value    必选 设置cookie的值。
    * @param  string  $expire   可选 设置cookie的过期时间。
    * @param  string  $path     可选 设置cookie的目录路径。
    * @param  string  $domain   可选 设置cookie的域。
    * @param  bool    $secure   可选 是否以HTTPS协议传送。
    * @param  bool    $httponly 可选 只允许HTTP访问Cookie，不允许javascript或其它方式访问。
    * @return bool
    */
    public static function Set($name,$value,$expire=NULL,$path='/',$domain=NULL,$secure=FALSE,$httponly=FALSE){
        return setcookie($name,$value,$expire,$path,$domain,$secure,$httponly);
    }

    /**
    * 描述：获取cookie值。
    * @param  string $name 必选 要获取cookie的名称。
    * @return string
    */
    public static function Get($name){
        if(isset($_COOKIE[$name])){
            if(get_magic_quotes_gpc()){
                return stripcslashes($_COOKIE[$name]);
            }
            else{
                return $_COOKIE[$name];
            }
        }
        else{
            return NULL;
        }
    }

    /**
    * 描述：清除指定cookie。
    * @param  string $name     必选 设置cookie的名称。
    * @param  string $path     可选 设置cookie的目录路径。
    * @param  string $domain   可选 设置cookie的域。
    * @param  bool   $secure   可选 是否以HTTPS协议传送。
    * @param  bool   $httponly 可选 只允许HTTP访问Cookie，不允许javascript或其它方式访问。
    * @return void
    */
    public static function Delete($name,$path='/',$domain=NULL){
        return setcookie($name,NULL,NULL,$path,$domain);
    }

    /**
    * 描述：清除所有cookie。
    * @param string $path     可选 设置cookie的目录路径。
    * @param string $domain   可选 设置cookie的域。
    * @param bool   $secure   可选 是否以HTTPS协议传送。
    * @param bool   $httponly 可选 只允许HTTP访问Cookie，不允许javascript或其它方式访问。
    * @return void
    */
    public static function Abandon($path='/',$domain=NULL){
        foreach($_COOKIE as $name=>$value){
            setcookie($name,NULL,NULL,$path,$domain);
        }
    }
}